package co.fitstart.entity.taste;

import java.util.Date;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

import org.apache.commons.lang3.StringUtils;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

import co.fitstart.entity.reference.Gender;

/**
 * BMI测试问卷
 * @author haiyan_xiao
 *
 */
@Entity
@Table(name = "bmi_question")
@JsonIgnoreProperties(value={"hibernate_lazy_initializer","handler","fieldHandler"})
public class BMIQuestion {
    
    @Id
    @GeneratedValue
    private Long id;
    
    /** 一天吃甜食次数 */
    private String sweetDescription;
    
    /** 流汗时机 */
    private String sweatDescription;
    
    /** 肤质 */
    private String skinDescription;
    
    /** 小腿直径 */
    private String shinDescription;
    
    /** 腰围 */
    private String waistDescription;
    
    /** 最快瘦下来部位 */
    private String slimDescription;
    
    /** 体重被预估 */
    private String weightDescription;
    
    /** 性别 */
    private Gender gender;
    
    /** 年龄 */
    private Integer age;
    
    /** 身高:cm */
    private Integer height;
    
    /** 体重：KG */
    private Float weight;
    
    /** 目标体重:KG */
    private Float targetWeight;
    
    /** 问卷填写时间 */
    private Date createTime;
    
    /** 来源 */
    private String source;
    
    public BMIQuestion() {
        
    }
    
    /**
     * initilization
     * @return
     */
    public BMIQuestion initilization() {
        this.createTime = new Date();
        if(StringUtils.isBlank(source)) {
            source = null;
        } else {
            source = source.trim();
        }
        return this;
    }

    /**
     * @return the id
     */
    public Long getId() {
        return id;
    }

    /**
     * @return the sweetDescription
     */
    public String getSweetDescription() {
        return sweetDescription;
    }

    /**
     * @return the sweatDescription
     */
    public String getSweatDescription() {
        return sweatDescription;
    }

    /**
     * @return the skinDescription
     */
    public String getSkinDescription() {
        return skinDescription;
    }

    /**
     * @return the shinDescription
     */
    public String getShinDescription() {
        return shinDescription;
    }

    /**
     * @return the waistDescription
     */
    public String getWaistDescription() {
        return waistDescription;
    }

    /**
     * @return the slimDescription
     */
    public String getSlimDescription() {
        return slimDescription;
    }

    /**
     * @return the weightDescription
     */
    public String getWeightDescription() {
        return weightDescription;
    }

    /**
     * @return the gender
     */
    public Gender getGender() {
        return gender;
    }

    /**
     * @return the age
     */
    public Integer getAge() {
        return age;
    }

    /**
     * @return the height
     */
    public Integer getHeight() {
        return height;
    }

    /**
     * @return the weight
     */
    public Float getWeight() {
        return weight;
    }

    /**
     * @return the targetWeight
     */
    public Float getTargetWeight() {
        return targetWeight;
    }

    /**
     * @return the createTime
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * @return the source
     */
    public String getSource() {
        return source;
    }

    /**
     * @param id the id to set
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * @param sweetDescription the sweetDescription to set
     */
    public void setSweetDescription(String sweetDescription) {
        this.sweetDescription = sweetDescription;
    }

    /**
     * @param sweatDescription the sweatDescription to set
     */
    public void setSweatDescription(String sweatDescription) {
        this.sweatDescription = sweatDescription;
    }

    /**
     * @param skinDescription the skinDescription to set
     */
    public void setSkinDescription(String skinDescription) {
        this.skinDescription = skinDescription;
    }

    /**
     * @param shinDescription the shinDescription to set
     */
    public void setShinDescription(String shinDescription) {
        this.shinDescription = shinDescription;
    }

    /**
     * @param waistDescription the waistDescription to set
     */
    public void setWaistDescription(String waistDescription) {
        this.waistDescription = waistDescription;
    }

    /**
     * @param slimDescription the slimDescription to set
     */
    public void setSlimDescription(String slimDescription) {
        this.slimDescription = slimDescription;
    }

    /**
     * @param weightDescription the weightDescription to set
     */
    public void setWeightDescription(String weightDescription) {
        this.weightDescription = weightDescription;
    }

    /**
     * @param gender the gender to set
     */
    public void setGender(Gender gender) {
        this.gender = gender;
    }

    /**
     * @param age the age to set
     */
    public void setAge(Integer age) {
        this.age = age;
    }

    /**
     * @param height the height to set
     */
    public void setHeight(Integer height) {
        this.height = height;
    }

    /**
     * @param weight the weight to set
     */
    public void setWeight(Float weight) {
        this.weight = weight;
    }

    /**
     * @param targetWeight the targetWeight to set
     */
    public void setTargetWeight(Float targetWeight) {
        this.targetWeight = targetWeight;
    }

    /**
     * @param createTime the createTime to set
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /**
     * @param source the source to set
     */
    public void setSource(String source) {
        this.source = source;
    }
}
